package Multithreading.Exercise003;

/**
 * ClassName:ThreadDome001
 * Package:Multithreading.Exercise003
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/3/5-17:34
 * @Version:v1.0
 */
public class ThreadDome001 {
    /**
     * 同步方法：就是把 synchronized 关键字加到方法上
     * <p>
     * 格式：修饰synchronized 返回值类型 方法名(方法参数){...}
     * <p>
     * 特点
     * 1.同步方法是锁住方法里面的所有代码
     * 2.所对象不能自己指定
     * 非静态：this
     * 静态：当前类的字节码文件
     */
    public static void main(String[] args) {
        //需求：某电影院目前正在上映国产大片,共有100张票,而他有3个窗口买票,请设计一个程序模拟该电影院卖票
        //利用同步方法完成
        //技巧：同步代码块--->同步方法
        MyRunnable mr = new MyRunnable();
        Thread t1 = new Thread(mr, "窗口-1");
        Thread t2 = new Thread(mr, "窗口-2");
        Thread t3 = new Thread(mr, "窗口-3");

        t1.start();
        t2.start();
        t3.start();
    }
}
